home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / src / exampleCode / MP / kernel_switch / mpy_mips1.f < prev    next >
Encoding:
Text File  |  1994-08-02  |  1.5 KB  |  66 lines

  1. c Copyright (C) 1993, Silicon Graphics, Inc.
  2. c All Rights Reserved.
  3. c
  4.     subroutine mpy_mips1(a,lda,b,ldb,c,ldc,m,n,p,alpha)
  5. c
  6.     implicit double precision(a-h,o-z)
  7.     real*8 alpha,beta
  8.     dimension a(lda,p),b(ldb,n),c(ldc,n)
  9.     integer p
  10. c
  11.     do  100 j=1,(n-1),2
  12.         do 50 i=1,(m-3),4
  13.             t00 = c(i,j)
  14.             t10 = c(i+1,j)
  15.             t20 = c(i+2,j)
  16.             t30 = c(i+3,j)
  17.             t01 = c(i,j+1)
  18.             t11 = c(i+1,j+1)
  19.             t21 = c(i+2,j+1)
  20.             t31 = c(i+3,j+1)
  21.             do 30 k=1,p
  22.             t00    = t00    + a(i,k)*b(k,j)
  23.             t01    = t01    + a(i,k)*b(k,j+1)
  24.             t10    = t10    + a(i+1,k)*b(k,j)
  25.             t11    = t11    + a(i+1,k)*b(k,j+1)
  26.             t20    = t20    + a(i+2,k)*b(k,j)
  27.             t21    = t21    + a(i+2,k)*b(k,j+1)
  28.             t30    = t30    + a(i+3,k)*b(k,j)
  29.             t31    = t31    + a(i+3,k)*b(k,j+1)
  30.  30    continue
  31.                         c(i,j) = t00
  32.                         c(i,j+1) = t01
  33.                         c(i+1,j) = t10
  34.                         c(i+1,j+1) = t11
  35.                         c(i+2,j) = t20
  36.                         c(i+2,j+1) = t21
  37.                         c(i+3,j) = t30
  38.                         c(i+3,j+1) = t31
  39.  50    continue
  40.         do 80 i=i,m
  41.         t00 = c(i,j)
  42.         t01 = c(i,j+1)
  43.         do k =1,p
  44.             t00    = t00    + a(i,k)*b(k,j)
  45.             t01    = t01    + a(i,k)*b(k,j+1)
  46.         enddo
  47.         c(i,j) = t00
  48.         c(i,j) = t01
  49.  80     continue
  50.     
  51.  100     continue
  52.  
  53.         do j=j,n
  54.                 do k=1,p
  55.                         t00 = b(k,j)
  56.                         do i=1,m
  57.                                 c(i,j) = c(i,j) + a(i,k)*t00
  58.                         enddo
  59.                 enddo
  60.         enddo
  61.  
  62.  
  63.     return
  64.     end
  65.